home *** CD-ROM | disk | FTP | other *** search
- 10 ifl=0thenl=1:load"s.fnt",8,1
- 20 poke52,128:poke56,128:clr:l=1
- 30 poke56578,peek(56578)or3:poke56576,(peek(56576)and252)or1:poke53272,16
- 40 poke648,132:poke53269,0:poke53280,14:poke53281,0:print"[154][147]";
- 50 diml1,l2,i,j,b(35),s(35)
- 70 gosub6000
- 80 gosub950
- 90 fori=0to34:readb(i),s(i):next
- 100 readl1,l2
- 105 print"[159][\\\\\\\\\\][157][157][157][157][157][157][157][157][157][157][157][157]^[155]score[159]....._ [159]";
- 110 print"[157][157][157][157][157][157][157][157][157][157][157][157][157]/::::::::::; [159]";
- 112 print"[157][157][157][157][157][157][157][157][157][157][157][157] [159]"
- 115 print"[159][\\\\\\\\\\\\][\\\\\\\\\\\\]"
- 120 print"^..[155]problem[159]..._ [159]^..[155]solution[159].._ [159]"
- 125 print"[159][198]\\\\\\\\\\\\[199] [159][198]\\\\\\\\\\\\[199] [159]"
- 130 i=15:ifb(26)=10theni=12
- 135 forj=1toi:print"^............_ [159]^............_ [159]":next
- 140 print"/::::::::::::; [159]/::::::::::::; [159]"
- 145 print" [159]";
- 180 r=1:fori=0to34:gosub1010:next
- 190 r=0:fori=0to34:gosub1010:next
- 200 rem main loop
- 205 m$=str$(m):m$=mid$(m$,2,len(m$)-1):m$=right$("....."+m$,5)
- 209 print"";m$;
- 210 ifq=0then216
- 211 ifjj=0thenreadjj
- 212 a=jj:jj=int(jj/10):a=a-int(jj*10)
- 213 geta$:ifa$<>chr$(135)then225
- 214 geta$:ifa$<>chr$(133)then214
- 215 goto225
- 216 geta$:ifa$=""then280
- 220 a=asc(a$)
- 225 if(a=145)or(a=1)or(a=85)then410
- 230 if(a=17)or(a=2)or(a=68)then510
- 240 if(a=29)or(a=4)or(a=82)then610
- 250 if(a=157)or(a=3)or(a=76)then710
- 260 if(a=136)or(a=5)or(a=83)then810
- 265 ifa=133then910
- 266 ifa=134thenprint"[154][147]";:gosub6400:goto80
- 270 goto210
- 280 a=peek(56320)and31:ifa=31then210
- 290 a=31-a:ifaand1then410
- 300 ifaand2then510
- 310 ifaand4then710
- 320 ifaand8then610
- 330 ifaand16then810
- 340 goto210
- 400 rem move up
- 410 onb(l1-5)+1goto415,420,210,425,430,435,210,210,440,445,210
- 415 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
- 420 b(l1)=1:b(l1-5)=0:i=l1:gosub1010:l1=l1-5:i=l1:goto2010
- 425 b(l1)=3:b(l1-5)=2:b(l1-10)=0:i=l1:gosub1010:i=l1-5:gosub1010:l1=l1-10
- 426 i=l1:goto2010
- 430 ifl2<>l1+1then210
- 431 b(l1)=b(l1-5):b(l2)=b(l2-5):b(l1-5)=0:b(l2-5)=0:i=l1:gosub1010:i=l2
- 432 gosub1010:l1=l1-5:l2=l2-5:i=l2:gosub1010:i=l1:goto2010
- 435 ifl2<>l1-1then210
- 436 goto431
- 440 ifl2<>l1+1then210
- 441 b(l1)=b(l1-5):b(l1-5)=b(l1-10):b(l1-10)=0:b(l2)=b(l2-5):b(l2-5)=b(l2-10)
- 442 b(l2-10)=0:i=l2:gosub1010:i=l2-5:gosub1010:l2=l2-10:i=l2:gosub1010
- 443 i=l1:gosub1010:i=l1-5:gosub1010:l1=l1-10:i=l1:goto2010
- 445 ifl2<>l1-1then210
- 446 goto441
- 500 rem move down
- 510 onb(l1+5)+1goto515,520,525,210,530,535,540,545,210,210,210
- 515 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
- 520 b(l1)=1:b(l1+5)=0:i=l1:gosub1010:l1=l1+5:i=l1:goto2010
- 525 b(l1)=2:b(l1+5)=3:b(l1+10)=0:i=l1:gosub1010:i=l1+5:gosub1010:l1=l1+10
- 526 i=l1:goto2010
- 530 ifl2<>l1+1then210
- 531 b(l1)=b(l1+5):b(l2)=b(l2+5):b(l1+5)=0:b(l2+5)=0:i=l1:gosub1010:i=l2
- 532 gosub1010:l1=l1+5:l2=l2+5:i=l2:gosub1010:i=l1:goto2010
- 535 ifl2<>l1-1then210
- 536 goto531
- 540 ifl2<>l1+1then210
- 541 b(l1)=b(l1+5):b(l1+5)=b(l1+10):b(l1+10)=0:b(l2)=b(l2+5):b(l2+5)=b(l2+10)
- 542 b(l2+10)=0:i=l2:gosub1010:i=l2+5:gosub1010:l2=l2+10:i=l2:gosub1010
- 543 i=l1:gosub1010:i=l1+5:gosub1010:l1=l1+10:i=l1:goto2010
- 545 ifl2<>l1-1then210
- 546 goto541
- 600 rem move right
- 610 onb(l1+1)+1goto615,620,625,630,635,210,640,210,645,210,210
- 615 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
- 620 b(l1)=1:b(l1+1)=0:i=l1:gosub1010:l1=l1+1:i=l1:goto2010
- 625 ifl2<>l1+5then210
- 626 b(l1)=b(l1+1):b(l2)=b(l2+1):b(l1+1)=0:b(l2+1)=0:l1=l1+1:l2=l2+1:i=l2
- 627 gosub1010:i=l2-1:gosub1010:i=l1-1:gosub1010:i=l1:goto2010
- 630 ifl2<>l1-5then210
- 631 goto626
- 635 b(l1)=4:b(l1+1)=5:b(l1+2)=0:l1=l1+2:i=l1-2:gosub1010:i=l1-1:gosub1010
- 636 i=l1:goto2010
- 640 ifl2<>l1+5then210
- 641 b(l1)=b(l1+1):b(l1+1)=b(l1+2):b(l1+2)=0:b(l2)=b(l2+1):b(l2+1)=b(l2+2)
- 642 b(l2+2)=0:l2=l2+2:l1=l1+2:i=l2:gosub1010:i=l2-1:gosub1010:i=l2-2:gosub1010
- 643 i=l1-2:gosub1010:i=l1-1:gosub1010:i=l1:goto2010
- 645 ifl2<>l1-5then210
- 646 goto641
- 700 rem move left
- 710 onb(l1-1)+1goto715,720,725,730,210,735,210,740,210,745,210
- 715 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
- 720 b(l1)=1:b(l1-1)=0:i=l1:gosub1010:l1=l1-1:i=l1:goto2010
- 725 ifl2<>l1+5then210
- 726 b(l1)=b(l1-1):b(l2)=b(l2-1):b(l1-1)=0:b(l2-1)=0:l1=l1-1:l2=l2-1:i=l2
- 727 gosub1010:i=l2+1:gosub1010:i=l1+1:gosub1010:i=l1:goto2010
- 730 ifl2<>l1-5then210
- 731 goto726
- 735 b(l1)=5:b(l1-1)=4:b(l1-2)=0:l1=l1-2:i=l1+2:gosub1010:i=l1+1:gosub1010
- 736 i=l1:goto2010
- 740 ifl2<>l1+5then210
- 741 b(l1)=b(l1-1):b(l1-1)=b(l1-2):b(l1-2)=0:b(l2)=b(l2-1):b(l2-1)=b(l2-2)
- 742 b(l2-2)=0:l2=l2-2:l1=l1-2:i=l2:gosub1010:i=l2+1:gosub1010:i=l2+2:gosub1010
- 743 i=l1+2:gosub1010:i=l1+1:gosub1010:i=l1:goto2010
- 745 ifl2<>l1-5then210
- 746 goto741
- 800 rem switch holes
- 810 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
- 900 rem see solution
- 910 gosub950:fori=0to34:readb(i),s(i):next:readl1,l2:fori=0to29:gosub1000:next
- 920 q=1:goto210
- 950 rem find problem
- 960 restore:ifpn=0thenreturn
- 970 fori=1topn
- 975 readj:ifj>=0then975
- 980 next:return
- 1000 rem draw square i
- 1010 y=int(i/5):x=i-5*y:x=x*3+20*r:y=y*3+6
- 1020 printleft$("",y);tab(x);:b=b(i):ifrthenb=s(i)
- 1030 onb+1goto1040,1050,1060,1070,1080,1090,1110,1120,1130,1140,1150
- 1040 ifi=l1then1160
- 1045 print"...[157][157][157]...[157][157][157]...";:return
- 1050 print"[158]![197]#[157][157][157]$%&[157][157][157]'()";:return
- 1060 print"![197]#[157][157][157]$%&[157][157][157]$%&";:return
- 1070 print"$%&[157][157][157]$%&[157][157][157]'()";:return
- 1080 print"![197][197][157][157][157]$%%[157][157][157]'((";:return
- 1090 print"[197][197]#[157][157][157]%%&[157][157][157](()";:return
- 1110 print"![197][197][157][157][157]$%%[157][157][157]$%%";:return
- 1120 print"[197][197]#[157][157][157]%%&[157][157][157]%%&";:return
- 1130 print"$%%[157][157][157]$%%[157][157][157]'((";:return
- 1140 print"%%&[157][157][157]%%&[157][157][157](()";:return
- 1150 return
- 1160 onb(l1-5)+1goto1180,1180,1200,1180,1170,1190,1200,1200,1170,1190,1200
- 1170 ifl2<>l1+1then1200
- 1180 print".*.[157][157][157]";:goto1210
- 1190 ifl2=l1-1then1180
- 1200 print"...[157][157][157]";
- 1210 onb(l1-1)+1goto1230,1230,1240,1220,1250,1230,1250,1240,1250,1220,1250
- 1220 ifl2<>l1-5then1250
- 1230 print"+.";:goto1260
- 1240 ifl2=l1+5then1230
- 1250 print"..";
- 1260 onb(l1+1)+1goto1280,1280,1290,1270,1280,1300,1290,1300,1270,1300,1300
- 1270 ifl2<>l1-5then1300
- 1280 print",[157][157][157]";:goto1310
- 1290 ifl2=l1+5then1280
- 1300 print".[157][157][157]";
- 1310 onb(l1+5)+1goto1330,1330,1330,1350,1340,1320,1340,1320,1350,1350,1350
- 1320 ifl2<>l1-1then1350
- 1330 print".-.";:return
- 1340 ifl2=l1+1then1330
- 1350 print"...";:return
- 2000 rem check board
- 2010 gosub1010:j=0:fori=0to29:j=j+(b(i)<>s(i)):next:m=m+1:ifjthen205
- 2015 fori=1to5:gosub6300:next
- 2020 print"[154][147][159][\\\\\\\\\\\\\\\\\\\\]"
- 2030 ifqthenprint"^that.was.not.so.hard[159]_ [159]":goto2050
- 2040 print"^.....you.did.it.....[159]_ [159]"
- 2050 print"[159]/::::::::::::::::::::; [159]"
- 2055 print" [159]"
- 2060 gosub6400:goto80
- 3000 rem restore font, pointers
- 3010 poke56578,peek(56578)or3:poke56576,peek(56576)or3:poke53272,20
- 3020 poke648,4:poke53280,14:poke53281,6:print"[154][147]";:return
- 4000 rem problem 1
- 4010 data10,10,10,10,10,10,10,10,10,10
- 4020 data10,10, 1, 1, 4, 1, 5, 0, 1, 1
- 4030 data10,10, 1, 2, 6, 6, 7, 7, 2, 0
- 4040 data10,10, 0, 3, 8, 8, 9, 9, 3, 1
- 4050 data10,10, 1, 1, 0, 4, 1, 5, 1, 1
- 4060 data10,10,10,10,10,10,10,10,10,10
- 4070 data10,10,10,10,10,10,10,10,10,10
- 4080 data16,22
- 4090 data33241351,41513225,32452324
- 4100 data45111541,22544452,11533225
- 4110 data22544451,15133533,25241351
- 4120 data41133254,4,-1
- 4500 rem problem 2
- 4510 data10,10,10,10,10,10,10,10,10,10
- 4520 data10,10, 6, 1, 7, 0, 2, 1, 1, 1
- 4530 data10,10, 8, 0, 9, 1, 3, 4, 1, 5
- 4540 data10,10, 4, 1, 5, 2, 1, 6, 0, 7
- 4550 data10,10, 1, 1, 1, 3, 0, 8, 1, 9
- 4560 data10,10,10,10,10,10,10,10,10,10
- 4570 data10,10,10,10,10,10,10,10,10,10
- 4580 data19,23
- 4590 data14511515,225423,13235332
- 4600 data25244544,11513535,54445245
- 4610 data35222532,45113353,35222544
- 4620 data54115113,25241544,35332452
- 4630 data54441515,35331442,22452223
- 4640 data45115113,-1
- 5000 rem problem 3
- 5010 data10,10,10,10,10,10,10,10,10,10
- 5020 data10,10, 4, 1, 5, 2, 4, 0, 5, 1
- 5030 data10,10, 1, 2, 4, 3, 5, 1, 2, 0
- 5040 data10,10, 0, 3, 1, 4, 2, 5, 3, 1
- 5050 data10,10, 1, 4, 0, 5, 3, 4, 1, 5
- 5060 data10,10,10,10,10,10,10,10,10,10
- 5070 data10,10,10,10,10,10,10,10,10,10
- 5080 data16,22
- 5090 data35135241,24524111,54423523
- 5100 data35151144,22522235,33145145
- 5110 data52241335,13513224,44524411
- 5120 data54235232,13353314,25424451
- 5130 data42313532,14545231,13241351
- 5140 data25132353,45445,-1
- 5500 rem problem 4
- 5510 data10,10,10,10,10,10,10,10,10,10
- 5520 data10,10, 2, 1, 6, 1, 7, 1, 2, 1
- 5530 data10,10, 3, 1, 8, 0, 9, 0, 3, 1
- 5540 data10,10, 4, 4, 5, 5, 4, 4, 5, 5
- 5550 data10,10, 1, 2, 0, 6, 0, 7, 1, 2
- 5560 data10,10, 1, 3, 1, 8, 1, 9, 1, 3
- 5570 data10,10,10,10,10,10,10,10,10,10
- 5580 data22,23
- 5590 data52241353,33533224,44524411
- 5600 data25231514,33142245,33254413
- 5610 data22413225,45113132,14252245
- 5620 data41151133,13252254,14422533
- 5630 data35331445,24454413,53245225
- 5640 data11132533,22454515,33254235
- 5650 data15113225,44524451,42335332
- 5660 data33111451,42233115,51324454
- 5670 data24411132,22522445,41335335
- 5680 data33144514,44522335,22311541
- 5690 data53142335,52245411,13352522
- 5700 data14525415,42525233,33514514
- 5710 data45222315,41151132,25332545
- 5720 data42241132,35322445,4541,-1
- 6000 rem title screen
- 6010 a1$="...[157][157][157]by.[157][157][157]pub[157][157][157][145][145]":a2$="...[157][157][157]dav[157][157][157]lis[157][157][157][145][145]"
- 6020 a3$="..s[157][157][157]e.j[157][157][157]hed[157][157][157][145][145]":a4$="hov[157][157][157]oha[157][157][157].on[157][157][157][145][145]"
- 6030 a5$="e.i[157][157][157]nns[157][157][157].lo[157][157][157][145][145]":a6$="t..[157][157][157]en.[157][157][157]ads[157][157][157][145][145]"
- 6040 a7$="...[157][157][157]@.1[157][157][157]tar[157][157][157][145][145]":a8$="...[157][157][157]989[157][157][157].77[157][157][157][145][145]":rem loadstar #
- 6050 b1$="...[157][157][157]...[157][157][157]all[157][157][157][145][145]":b2$="sub[157][157][157]1.8[157][157][157].ri[157][157][157][145][145]"
- 6060 b3$="scr[157][157][157]00.[157][157][157]ght[157][157][157][145][145]":b4$="ipt[157][157][157]831[157][157][157]s.r[157][157][157][145][145]"
- 6070 b5$="ion[157][157][157].26[157][157][157]ese[157][157][157][145][145]":b6$="s..[157][157][157]94.[157][157][157]rve[157][157][157][145][145]"
- 6080 b7$="...[157][157][157]...[157][157][157]d..[157][157][157][145][145]":b8$="<=>[157][157][157]?[192][193][157][157][157][194][195][196][157][157][157][145][145]"
- 6090 u$="[145][145][145]":d$="":l$="[157][157][157]":r$="":x$="...[157][157][157]...[157][157][157]...[157][157][157][145][145]"
- 6100 print"[154][147][159][\\\\\\\\\\\\\\\\\\\\\\\\\\]"
- 6110 fori=1to6:print"^.........................._ [159]":next
- 6120 print"/::::::::::::::::::::::::::; [159]"
- 6125 print" [159]":print"";
- 6130 printb1$;r$;x$;r$;a2$;r$;b5$;r$;b4$;r$;a5$;r$;b6$;r$;a7$;d$;
- 6140 printa8$;l$;a6$;l$;b7$;l$;a4$;l$;b3$;l$;a3$;l$;a1$;l$;b2$;
- 6145 fori=1to5:gosub6300:next
- 6150 gosub6300:printr$;x$;u$;a1$;:gosub6300:printd$;l$;x$;r$;b2$;
- 6160 gosub6300:printl$;u$;x$;d$;b1$;:gosub6300:printu$;r$;x$;l$;a1$;
- 6170 gosub6300:printr$;r$;x$;l$;a2$;:gosub6300:printr$;d$;x$;u$;a3$;
- 6180 gosub6300:printd$;r$;x$;l$;b3$;:gosub6300:printr$;r$;x$;l$;a4$;
- 6190 gosub6300:printr$;u$;x$;d$;b4$;:gosub6300:printu$;l$;x$;r$;b5$;
- 6200 gosub6300:printl$;d$;x$;u$;a4$;:gosub6300:printd$;r$;x$;l$;b4$;
- 6210 gosub6300:printr$;u$;x$;d$;b5$;:gosub6300:printu$;r$;x$;l$;a5$;
- 6220 gosub6300:printr$;r$;x$;l$;b6$;:gosub6300:printr$;d$;x$;u$;a6$;
- 6230 gosub6300:printd$;l$;x$;r$;b7$;:gosub6300:printl$;u$;x$;d$;b6$;
- 6240 gosub6300:printu$;r$;x$;l$;a6$;:gosub6300:printr$;r$;x$;l$;a7$;
- 6250 gosub6300:printr$;d$;x$;u$;a8$;:gosub6300:printd$;b8$;
- 6260 fori=1to5:gosub6300:next:goto6400
- 6300 forj=1to400:next:return
- 6400 rem choose problem
- 6410 print"";
- 6420 print"[159][\\\\\\\\\\\\\\\\\\]"
- 6430 print"[159]^.1,.problem.1[159]....._ [159]"
- 6440 print"[159]^.2,.problem.2[159]....._ [159]"
- 6450 print"[159]^.3,.problem.3[159]....._ [159]"
- 6460 print"[159]^.4,.problem.4[159]....._ [159]"
- 6470 print"[159]^.5,.instructions[159].._ [159]"
- 6480 print"[159]^.6,.loadstar...[159]..._ [159]"
- 6490 print"[159]^.................._ [159]"
- 6500 print"[159]^.[158]enter.selection[159].._ [159]"
- 6510 print"[159]/::::::::::::::::::; [159]"
- 6515 print" [159]"
- 6520 geta$:ifa$=""then6520
- 6530 a=asc(a$)-49:ifa<0ora>5then6520
- 6540 ifa<4thenpn=a:print"[154][147]";:q=0:m=0:return
- 6550 ifa=4then6605
- 6555 gosub3000
- 6560 open15,8,15,"r0:hello connect=hello connect":input#15,er%:close15
- 6570 ifer%<>63thenend
- 6580 load"hello connect",8
- 6600 rem intro text
- 6605 print"[154][147][159]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\";
- 6606 print"........................................";
- 6610 print"[150].move.the.blocks.in.the.problem.grid.to.";
- 6620 print"...match.the.solution.grid..............";
- 6630 print".move.the.open.square.using.the.cursor..";
- 6640 print"...keys.or.the.joystick.................";
- 6650 print".the.arrows.in.the.open.square.show.the.";
- 6660 print"...possible.moves.......................";
- 6670 print".f7.or.the.fire.button.swaps.the.two....";
- 6680 print"...open.squares.........................";
- 6690 print".f1.shows.one.possible.answer...........";
- 6700 print".while.the.answer.is.being.shown..f5....";
- 6710 print"...will.pause.the.display.and.f1.will...";
- 6715 print"...resume...............................";
- 6720 print".f3.will.quit...........................";
- 6730 print"........................................";
- 6740 print".......[158]press.any.key.to.continue........";
- 6745 print"........................................";
- 6750 print"[159]::::::::::::::::::::::::::::::::::::::::";
- 6760 geta$:ifa$=""then6760
- 6770 print"[154][147]";:goto6410
- 10000 open15,8,15,"s0:shove it":close15:save"shove it",8:end
-